import {Draw} from 'ol/interaction';
import {Vector as VectorLayer} from "ol/layer";
import {Vector as VectorSource} from "ol/source";
import {Stroke, Circle, Fill, Style} from 'ol/style';

// 绘制圆形, 并将其定在地图上面
/*function setDraw(mapInstance) {
    // 创建源对象
    const sourceVector = new VectorSource()
    // 创建绘制交互对象
    const draw = new Draw({
        type: 'Circle',
        source: sourceVector, // 将绘制的图形添加到源对象中
        style: new Style({
            stroke: new Stroke({
                color: '#0056ff',
                width: 1
            }),
            image: new Circle({
                radius: 5,
                fill: new Fill({
                    color: '#F12525'
                })
            })
        })
    });
    // 将绘制交互对象添加到地图
    mapInstance.addInteraction(draw);
    // 创建矢量图层以显示绘制的圆形
    const vectorLayer = new VectorLayer({
        source: sourceVector, // 将绘制的图形添加到矢量图层中
        style: new Style({
            stroke: new Stroke({
                color: '#0056ff',
                width: 1
            }),
        })
    });
    // 将矢量图层添加到地图
    mapInstance.addLayer(vectorLayer);
}*/

// 绘制点, 并将其定在地图上面
/*function setDraw(mapInstance) {
    // 创建源对象
    const sourceVector = new VectorSource()
    // 创建绘制交互对象
    const draw = new Draw({
        type: 'Point',
        source: sourceVector, // 将绘制的图形添加到源对象中
        style: new Style({
            image: new Circle({
                radius: 5,
                fill: new Fill({
                    color: '#F12525'
                })
            })
        })
    });
    // 将绘制交互对象添加到地图
    mapInstance.addInteraction(draw);
    // 创建矢量图层以显示绘制的圆形
    const vectorLayer = new VectorLayer({
        source: sourceVector, // 将绘制的图形添加到矢量图层中
        style: new Style({
            image: new Circle({
                radius: 5,
                fill: new Fill({
                    color: '#0056ff'
                })
            })
        })
    });
    // 将矢量图层添加到地图
    mapInstance.addLayer(vectorLayer);
}*/

// 绘制点（Point）、线（LineString）、多边形（Polygon）, 并将其定在地图上面
function setDraw(mapInstance) {
    // 创建源对象
    const sourceVector = new VectorSource()
    // 创建绘制交互对象
    const draw = new Draw({
        type: 'Polygon',
        source: sourceVector, // 将绘制的图形添加到源对象中
        style: new Style({
            stroke: new Stroke({
                color: '#0056ff',
                width: 1
            }),
            image: new Circle({
                radius: 5,
                fill: new Fill({
                    color: '#F12525'
                })
            })
        })
    });
    // 将绘制交互对象添加到地图
    mapInstance.addInteraction(draw);
    // 创建矢量图层以显示绘制的圆形
    const vectorLayer = new VectorLayer({
        source: sourceVector, // 将绘制的图形添加到矢量图层中
        style: new Style({
            stroke: new Stroke({
                color: '#0056ff',
                width: 1
            })
        })
    });
    // 将矢量图层添加到地图
    mapInstance.addLayer(vectorLayer);
}
export default setDraw
